using 后端服务.Models;

namespace 后端服务.Services;

/// <summary>
/// 视频服务接口，定义视频相关的业务操作
/// </summary>
public interface IVideoService
{
    /// <summary>
    /// 搜索视频并返回分页结果
    /// </summary>
    /// <param name="query">搜索关键词</param>
    /// <param name="page">当前页码</param>
    /// <param name="pageSize">每页记录数</param>
    /// <returns>分页的视频列表结果</returns>
    Task<PagedResult<VideoDto>> SearchVideosAsync(string query, int page, int pageSize);

    /// <summary>
    /// 根据ID获取视频详情
    /// </summary>
    /// <param name="id">视频ID</param>
    /// <returns>视频详情，如果未找到返回null</returns>
    Task<VideoDto?> GetVideoByIdAsync(long id);

    /// <summary>
    /// 获取视频文件信息
    /// </summary>
    /// <param name="id">视频ID</param>
    /// <returns>返回包含文件信息的元组 (文件路径, 文件名, MIME类型)</returns>
    Task<(string? FilePath, string FileName, string MimeType)?> GetVideoFileInfoAsync(long id);
}